Determining the effects of lake variables on the relationship of TP (log transformed ug/L) with Chl-a concentrations (log transformed ug/L), using the gradient of residuals against variables.
lm1 <- lm(logCHLA~logTP, data=df)
df$res.lm <- resid(lm1)plot.lm1 <- ggplot(df,aes(x=logTP,y=logCHLA))+
geom_point()+
geom_smooth(method='lm')+
labs(title="Linear log-log model",x="log TP",y="log CHLA")
print(plot.lm1)## `geom_smooth()` using formula 'y ~ x'
summary(lm1)##
## Call:
## lm(formula = logCHLA ~ logTP, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -6.6584 -0.4638 0.0539 0.5754 4.5151
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.91854 0.06877 86.06 <2e-16 ***
## logTP 1.03301 0.01594 64.80 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.942 on 6467 degrees of freedom
## Multiple R-squared: 0.3937, Adjusted R-squared: 0.3936
## F-statistic: 4199 on 1 and 6467 DF, p-value: < 2.2e-16
anova(lm1)## Analysis of Variance Table
##
## Response: logCHLA
## Df Sum Sq Mean Sq F value Pr(>F)
## logTP 1 3726.0 3726.0 4198.9 < 2.2e-16 ***
## Residuals 6467 5738.7 0.9
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Outliers were identified as points with studentized residuals outside 3:-3
plot.lm2<- ggplot(df2,aes(x=logTP,y=logCHLA))+
geom_point()+
geom_smooth(method='lm')+
labs(title="Linear log-log model without outliers",x="log TP",y="log CHLA")
print(plot.lm2)## `geom_smooth()` using formula 'y ~ x'
summary(lm2)##
## Call:
## lm(formula = logCHLA ~ logTP, data = df2)
##
## Residuals:
## Min 1Q Median 3Q Max
## -2.98289 -0.46847 0.03455 0.53092 2.81817
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.30320 0.06207 101.55 <2e-16 ***
## logTP 1.11344 0.01439 77.38 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.8251 on 6362 degrees of freedom
## Multiple R-squared: 0.4849, Adjusted R-squared: 0.4848
## F-statistic: 5988 on 1 and 6362 DF, p-value: < 2.2e-16
anova(lm2)## Analysis of Variance Table
##
## Response: logCHLA
## Df Sum Sq Mean Sq F value Pr(>F)
## logTP 1 4076.5 4076.5 5988.1 < 2.2e-16 ***
## Residuals 6362 4331.0 0.7
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pattern of logCHLA~logTP model residuals along gradients of variables. All variables are fitted to a linear model on the residuals.
cols <- c(2,9,10,11,15,16)
df2 <- df2 %>%
rename("Sample date"=SAMPLE_DATE,
"Secchi disk depth"=`DEPTH, SECCHI DISK DEPTH_SD_NA`,
"Log(N:P)"=NPratio,
"Lake temperature"=`TEMPERATURE, WATER_OW_NA`,
"True color"=`TRUE COLOR_OW_T`)
for(i in cols){
lm.loop <- lm(res.lm ~ df2[,i], data=df2) #linear model of residuals against variable
p1 <- ggplot(df2,aes(x=df2[,i],y=res.lm))+
geom_point()+
geom_smooth(method='lm')+
labs(x=paste(colnames(df2[i])),
y='residuals of LM(logCHLA~logTP)')
if(colnames(df2[i])=="Sample date"){
p1 <- p1+scale_x_date(date_labels="%Y")
}
p2 <- ggplot(data=df2, aes(x=df2[,i])) +
geom_density(fill="grey") +
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
panel.grid=element_blank(),
axis.line=element_blank(),
panel.background = element_blank())
if(i==11){
dat <- df2
dat[,i]<-log(as.numeric(df2[,i]))
dat <- dat %>%
select(res.lm,"Log(N:P)") %>%
na.omit(dat)
dat <- dat[!is.infinite(dat$`Log(N:P)`),]
lm.loop <- lm(res.lm ~ `Log(N:P)`,dat)
p1 <- ggplot(dat,aes(x=`Log(N:P)`,y=res.lm))+
geom_point()+
geom_smooth(method='lm')+
labs(x=paste(colnames(df2[i])),
y='residuals of LM(logCHLA~logTP)')
p2 <- ggplot(data=dat, aes(x=`Log(N:P)`)) +
geom_density(fill="grey") +
theme(axis.title.x=element_blank(),
axis.text.x=element_blank(),
axis.ticks.x=element_blank(),
axis.title.y=element_blank(),
axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
panel.grid=element_blank(),
axis.line=element_blank(),
panel.background = element_blank())
}
require(gridExtra)
grid.arrange(p2, p1, ncol = 1, heights = c(1, 4))
stats[nrow(stats)+1,] <- c(colnames(df2[i]),
coef(lm.loop),
summary(lm.loop)$coefficients[2,4],
summary(lm.loop)$r.squared)
vars[nrow(vars)+1,] <- c(colnames(df2)[i],
paste(min(as.numeric(na.omit(df2[,i]))),
"-",max(as.numeric(na.omit(df2[,i])))),
nrow(df2[i]),
paste(median(as.numeric(na.omit(df2[,i]))),
"(",summary(as.numeric(na.omit(df2[,i])))[2],
"-",summary(as.numeric(na.omit(df2[,i])))[5],")")) #stats
}Variable descriptive statistics
| characteristic | range | n | median..IQR. |
|---|---|---|---|
| Sample date | 6007 - 18535 | 6364 | 12687 ( 8230.75 - 15877 ) |
| Secchi disk depth | 0.05 - 13.6 | 6364 | 3.3 ( 2 - 4.75 ) |
| NITROGEN, NITRATE-NITRITE_OW_T | -0.000798 - 2.3 | 6364 | 0.01 ( 0.009922 - 0.034 ) |
| Log(N:P) | -0.0973170731707317 - 283.333333333333 | 6364 | 1.01386281588448 ( 0.509259259259259 - 2.96805309734513 ) |
| Lake temperature | 4 - 36 | 6364 | 22.7777777777778 ( 20 - 25 ) |
| True color | 0 - 222 | 6364 | 10 ( 6 - 19 ) |
| ACID DEPOSITION | 213.6579857 - 1671.703552 | 2985 | 808.8840129 ( 465.2497559 - 975.3500061 ) |
| PRECIPITATION | 76.6439971923828 - 192.690994262695 | 2515 | 105.960250854492 ( 96.1419982910156 - 119.623184926382 ) |
| COLOR (LOW) | Inf - -Inf | 5018 | NA ( NA - NA ) |
| COLOR (HIGH) | Inf - -Inf | 1449 | NA ( NA - NA ) |
Coefficients for linear models of residuals along gradient of variables. Bold values indicate significant p-values (<0.05). Sorted by rsquared.
| characteristic | intercept | slope | p.value | rsquared |
|---|---|---|---|---|
| Secchi disk depth | 0.54363702693813 | -0.153747955259471 | 4.7134371288255e-174 | 0.120415808390344 |
| ACID DEPOSITION | -0.631478072707592 | 0.000830913929983691 | 1.54946185732119e-68 | 0.0975389912152332 |
| Sample date | 0.781246097445401 | -6.34720589943145e-05 | 5.71931741311346e-136 | 0.0922829965290701 |
| Lake temperature | 0.356610213342912 | -0.0155339225932219 | 2.47318449824419e-07 | 0.00438824828642913 |
| NITROGEN, NITRATE-NITRITE_OW_T | 0.000554353651244087 | -0.26192822098921 | 7.94789084060051e-05 | 0.00306853745689088 |
| COLOR (LOW) | -0.0406983215745642 | 0.00612269831057828 | 0.00568369290808991 | 0.00155562297822806 |
| PRECIPITATION | 0.243824973482366 | -0.00110609574794805 | 0.207023599057856 | 0.000633478591571892 |
| Log(N:P) | -0.0138670292849897 | -0.0132768640679941 | 0.0977693577900466 | 0.000541288958866251 |
| COLOR (HIGH) | -0.23749465646799 | 0.0545782510659642 | 0.39803353719385 | 0.000531499162041898 |
| True color | 0.00554566259074965 | -0.00029577409163138 | 0.672574876652699 | 2.85375728495901e-05 |
## Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...): NA/NaN/Inf in 'y'
## Error in `$<-.data.frame`(`*tmp*`, "DEPTH, BOTTOM_OW_NA", value = NA_real_): replacement has 1 row, data has 0
## Error in summary(lm.dep)$coefficients[2, 4]: subscript out of bounds
Variable descriptive statistics
| characteristic | years | range | n | median..IQR. |
|---|---|---|---|---|
| Secchi disk depth | 2018 - 2020 | 0.65 - 11.85 | 275 | 3.9 ( 2.25 - 5.25 ) |
| NITROGEN, NITRATE-NITRITE_OW_T | 2018 - 2020 | 0.0035 - 0.677 | 275 | 0.0209 ( 0.01 - 0.0713 ) |
| LAKE DEPTH | 2020 - 2020 | 11 - 11 | 9 | |
| ACID DEPOSITION (DIN:TP>1.5) | 2011 - 2018 | 213.6579857 - 772.1180725 | 82 | |
| ACID DEPOISITION (DIN:TP<1.5) | 2017 - 2018 | 213.6579857 - 712.899106 | 176 | |
| PRECIPITATION | 2013 - 2016 | 76.9628023420061 - 131.316277313232 | 126 | |
| NITRATE+NITRITE (DIN:TP<1.5) | 2017 - 2020 | 0.0035 - 0.118 | 140 | |
| NITRATE+NITRITE (DIN:TP>1.5) | 2011 - 2020 | 0.01 - 0.677 | 72 |
Coefficients for linear models of residuals along gradient of variables in most recent year. Bold values indicate significant p-values (<0.05). Sorted by rsquared.
| characteristic | intercept | slope | p.value | rsquared |
|---|---|---|---|---|
| Secchi disk depth | 0.418879370452514 | -0.134729328574692 | 2.07201547289412e-10 | 0.140652301284837 |
| NITROGEN, NITRATE-NITRITE_OW_T | -0.0137309001466414 | -1.25302057761975 | 0.0317085975993846 | 0.0525344583539137 |
| NITRATE+NITRITE (DIN:TP>1.5) | -0.179923076337358 | -0.932026609361253 | 0.123171988725382 | 0.0345933919602646 |
| PRECIPITATION | 0.548127466881036 | -0.00939716704713627 | 0.229478947427043 | 0.0120115407499817 |
| ACID DEPOSITION (DIN:TP>1.5) | -0.767947443943008 | 0.000989169049434624 | 0.389269420193164 | 0.00976922152200085 |
| ACID DEPOSITION (DIN:TP<1.5) | -0.767947443943008 | 0.000989169049434624 | 0.389269420193164 | 0.00976922152200085 |
| NITRATE+NITRITE (DIN:TP<1.5) | -0.0793890427344458 | 0.388563331374409 | 0.915696788224396 | 8.26930177312915e-05 |
High vs low color, sample date [1] “HIGH COLOR, N= 0” [1] “LOW COLOR, N= 0”
## Error in eval(predvars, data, env): object 'SAMPLE_DATE' not found
## Error in FUN(X[[i]], ...): object 'SAMPLE_DATE' not found
## Error in coef(lm.high): object 'lm.high' not found
## Error in eval(predvars, data, env): object 'SAMPLE_DATE' not found
## Error in FUN(X[[i]], ...): object 'SAMPLE_DATE' not found
## Error in coef(lm.low): object 'lm.low' not found
| characteristic | intercept | slope | p.value | rsquared |
|---|
Color trend, sample date
## Error: Can't subset columns that don't exist.
## x Column `TRUE COLOR_OW_T` doesn't exist.
## Error: Can't subset columns that don't exist.
## x Column `TRUE COLOR_OW_T` doesn't exist.
[1] “INCREASING COLOR, N= 22” [1] “DECREASING COLOR, N= 17”
## Error in eval(predvars, data, env): object 'res.lm' not found
## Error in ggplot(lm.inc, aes(x = SAMPLE_DATE, y = res.lm)): object 'lm.inc' not found
## Error in ggplot(data = lm.inc, aes(x = SAMPLE_DATE)): object 'lm.inc' not found
## Error in FUN(X[[i]], ...): object 'SAMPLE_DATE' not found
## Error in coef(lm.inc): object 'lm.inc' not found
## Error in eval(predvars, data, env): object 'res.lm' not found
## Error in FUN(X[[i]], ...): object 'SAMPLE_DATE' not found
## Error in coef(lm.dec): object 'lm.dec' not found
| characteristic | intercept | slope | p.value | rsquared |
|---|
Pattern of logCHLA~logTP model residuals along sample date for each lake. Data from each lake are fitted to a linear model on the residuals.
A red regression line indicates the model is statistically insignificant (p>0.05). A red border medians that the lake had a negative chlorophyll trend and a flat or positive phosphorous trend.
#each lake
#loop over each lake
LAKE_IDS <- unique(df$LAKE_ID) #list lakes
coeffs <- data.frame(lake=character(),
intercept=double(),
slope=double(),
'p-value'=double(),
rsquared=double()) #blank coefficient table
incongruous <- read.csv("~/OneDrive - New York State Office of Information Technology Services/Rscripts/Trend/chl-tp-lakes.csv")
incongruous <- incongruous[which(incongruous$CHL_slope!=incongruous$PHOS_slope),]
incongruous <- incongruous[incongruous$CHL_slope=="neg",]
for (i in 1:length(LAKE_IDS)) {
lake <- LAKE_IDS[[i]] #pick a lake
dat <- df2[df2$LAKE_ID == lake,] #create new data with that lake
resid.loop <- lm(logCHLA~logTP,data=dat) #linear model of chl vs tp
dat$res.loop <- resid(resid.loop) #residuals for that lake
lm.loop <- lm(res.loop~SAMPLE_DATE,data=dat) #linear model of residuals vs year
co <- coef(lm.loop)
plot <- ggplot(dat,aes(x=SAMPLE_DATE,y=res.loop))+ #plot lake
geom_point() +
labs(title=paste(lake),x='year',y='residuals of LM(logCHLA~logTP)')
if(summary(lm.loop)$coefficients[,4]<0.05){ #plot significant lakes
plot <- plot + geom_smooth(method='lm')
}else{
plot <- plot + geom_smooth(method='lm',aes(color="red"),show.legend=FALSE)
}
if(lake %in% incongruous$LAKE_ID){
plot <- plot + theme(panel.border = element_rect(colour = "red", fill=NA, size=3))
}else{}
print(plot) #print
coeffs[nrow(coeffs)+1,] <- c(lake,
co,
summary(lm.loop)$coefficients[2,4],
summary(lm.loop)$r.squared)
}## Error in eval(predvars, data, env): object 'SAMPLE_DATE' not found
Coefficients for linear models of residuals along gradient of time for each lake. Bold values indicate significant p-values (<0.05). Asterisks (***) indicate that the lake had a negative chlorophyll trend and a flat or positive phosphorous trend.
| lake | intercept | slope | p.value | rsquared |
|---|
Dot plot of slope for each lake. Grey dots are statistically insignificant (p>0.05).
## Error in `$<-.data.frame`(`*tmp*`, x, value = "lakes"): replacement has 1 row, data has 0
## Error in `$<-.data.frame`(`*tmp*`, sig, value = "sig"): replacement has 1 row, data has 0
## Error in if (coeffs$p.value[i] < 0.05) {: missing value where TRUE/FALSE needed
## Error in FUN(X[[i]], ...): object 'x' not found
# Maps
temp1 <- read.csv("junk.sabrina.slopes2.csv")
temp1 <- temp1 %>%
select(-c("ChlA","P","risiduals"))
coeffs2 <- coeffs %>%
rename(LAKE_ID=lake) %>%
rename(CHLTP=slope) %>%
select(LAKE_ID,CHLTP,p.value)
coeffs2$CHLTP <- as.numeric(coeffs2$CHLTP)
coeffs2$p.value <- as.numeric(coeffs2$p.value)
coeffs2$CHLTP[coeffs2$p.value>0.05]<-0
slopes <- merge(temp1,coeffs2,by="LAKE_ID",all.x=TRUE,all.y=TRUE)
locs <- read.csv("/Users/sabrinaxie/New York State Office of Information Technology Services/BWAM - Lakes Database/Current/new_database/L_LOCATION.csv")
locs <- locs %>%
filter(LOCATION_TYPE=="CENTROID") %>%
select(LAKE_HISTORY_ID,LOCATION_X_COORDINATE,LOCATION_Y_COORDINATE) %>%
rename(LAKE_ID=LAKE_HISTORY_ID)
sites<-merge(slopes,locs,by=c('LAKE_ID'),all.x = TRUE) %>%
distinct()
library(ggmap)## Google's Terms of Service: https://cloud.google.com/maps-platform/terms/.
## Please cite ggmap if you use it! See citation("ggmap") for details.
ggplot(grid, aes(lon, lat)) +
geom_raster(aes(fill = cut(z, zCuts))) ## Error: You're passing a function as global data.
## Have you misspelled the `data` argument in `ggplot()`
#color
nybox<-make_bbox(sites,lon=LOCATION_X_COORDINATE,lat=LOCATION_Y_COORDINATE)
ny.map <- qmap(nybox,source="osm",color="bw")## 384 tiles needed, this may take a while (try a smaller zoom).
## Source : http://tile.stamen.com/terrain/10/284/369.png
## Source : http://tile.stamen.com/terrain/10/285/369.png
## Source : http://tile.stamen.com/terrain/10/286/369.png
## Source : http://tile.stamen.com/terrain/10/287/369.png
## Source : http://tile.stamen.com/terrain/10/288/369.png
## Source : http://tile.stamen.com/terrain/10/289/369.png
## Source : http://tile.stamen.com/terrain/10/290/369.png
## Source : http://tile.stamen.com/terrain/10/291/369.png
## Source : http://tile.stamen.com/terrain/10/292/369.png
## Source : http://tile.stamen.com/terrain/10/293/369.png
## Source : http://tile.stamen.com/terrain/10/294/369.png
## Source : http://tile.stamen.com/terrain/10/295/369.png
## Source : http://tile.stamen.com/terrain/10/296/369.png
## Source : http://tile.stamen.com/terrain/10/297/369.png
## Source : http://tile.stamen.com/terrain/10/298/369.png
## Source : http://tile.stamen.com/terrain/10/299/369.png
## Source : http://tile.stamen.com/terrain/10/300/369.png
## Source : http://tile.stamen.com/terrain/10/301/369.png
## Source : http://tile.stamen.com/terrain/10/302/369.png
## Source : http://tile.stamen.com/terrain/10/303/369.png
## Source : http://tile.stamen.com/terrain/10/304/369.png
## Source : http://tile.stamen.com/terrain/10/305/369.png
## Source : http://tile.stamen.com/terrain/10/306/369.png
## Source : http://tile.stamen.com/terrain/10/307/369.png
## Source : http://tile.stamen.com/terrain/10/284/370.png
## Source : http://tile.stamen.com/terrain/10/285/370.png
## Source : http://tile.stamen.com/terrain/10/286/370.png
## Source : http://tile.stamen.com/terrain/10/287/370.png
## Source : http://tile.stamen.com/terrain/10/288/370.png
## Source : http://tile.stamen.com/terrain/10/289/370.png
## Source : http://tile.stamen.com/terrain/10/290/370.png
## Source : http://tile.stamen.com/terrain/10/291/370.png
## Source : http://tile.stamen.com/terrain/10/292/370.png
## Source : http://tile.stamen.com/terrain/10/293/370.png
## Source : http://tile.stamen.com/terrain/10/294/370.png
## Source : http://tile.stamen.com/terrain/10/295/370.png
## Source : http://tile.stamen.com/terrain/10/296/370.png
## Source : http://tile.stamen.com/terrain/10/297/370.png
## Source : http://tile.stamen.com/terrain/10/298/370.png
## Source : http://tile.stamen.com/terrain/10/299/370.png
## Source : http://tile.stamen.com/terrain/10/300/370.png
## Source : http://tile.stamen.com/terrain/10/301/370.png
## Source : http://tile.stamen.com/terrain/10/302/370.png
## Source : http://tile.stamen.com/terrain/10/303/370.png
## Source : http://tile.stamen.com/terrain/10/304/370.png
## Source : http://tile.stamen.com/terrain/10/305/370.png
## Source : http://tile.stamen.com/terrain/10/306/370.png
## Source : http://tile.stamen.com/terrain/10/307/370.png
## Source : http://tile.stamen.com/terrain/10/284/371.png
## Source : http://tile.stamen.com/terrain/10/285/371.png
## Source : http://tile.stamen.com/terrain/10/286/371.png
## Source : http://tile.stamen.com/terrain/10/287/371.png
## Source : http://tile.stamen.com/terrain/10/288/371.png
## Source : http://tile.stamen.com/terrain/10/289/371.png
## Source : http://tile.stamen.com/terrain/10/290/371.png
## Source : http://tile.stamen.com/terrain/10/291/371.png
## Source : http://tile.stamen.com/terrain/10/292/371.png
## Source : http://tile.stamen.com/terrain/10/293/371.png
## Source : http://tile.stamen.com/terrain/10/294/371.png
## Source : http://tile.stamen.com/terrain/10/295/371.png
## Source : http://tile.stamen.com/terrain/10/296/371.png
## Source : http://tile.stamen.com/terrain/10/297/371.png
## Source : http://tile.stamen.com/terrain/10/298/371.png
## Source : http://tile.stamen.com/terrain/10/299/371.png
## Source : http://tile.stamen.com/terrain/10/300/371.png
## Source : http://tile.stamen.com/terrain/10/301/371.png
## Source : http://tile.stamen.com/terrain/10/302/371.png
## Source : http://tile.stamen.com/terrain/10/303/371.png
## Source : http://tile.stamen.com/terrain/10/304/371.png
## Source : http://tile.stamen.com/terrain/10/305/371.png
## Source : http://tile.stamen.com/terrain/10/306/371.png
## Source : http://tile.stamen.com/terrain/10/307/371.png
## Source : http://tile.stamen.com/terrain/10/284/372.png
## Source : http://tile.stamen.com/terrain/10/285/372.png
## Source : http://tile.stamen.com/terrain/10/286/372.png
## Source : http://tile.stamen.com/terrain/10/287/372.png
## Source : http://tile.stamen.com/terrain/10/288/372.png
## Source : http://tile.stamen.com/terrain/10/289/372.png
## Source : http://tile.stamen.com/terrain/10/290/372.png
## Source : http://tile.stamen.com/terrain/10/291/372.png
## Source : http://tile.stamen.com/terrain/10/292/372.png
## Source : http://tile.stamen.com/terrain/10/293/372.png
## Source : http://tile.stamen.com/terrain/10/294/372.png
## Source : http://tile.stamen.com/terrain/10/295/372.png
## Source : http://tile.stamen.com/terrain/10/296/372.png
## Source : http://tile.stamen.com/terrain/10/297/372.png
## Source : http://tile.stamen.com/terrain/10/298/372.png
## Source : http://tile.stamen.com/terrain/10/299/372.png
## Source : http://tile.stamen.com/terrain/10/300/372.png
## Source : http://tile.stamen.com/terrain/10/301/372.png
## Source : http://tile.stamen.com/terrain/10/302/372.png
## Source : http://tile.stamen.com/terrain/10/303/372.png
## Source : http://tile.stamen.com/terrain/10/304/372.png
## Source : http://tile.stamen.com/terrain/10/305/372.png
## Source : http://tile.stamen.com/terrain/10/306/372.png
## Source : http://tile.stamen.com/terrain/10/307/372.png
## Source : http://tile.stamen.com/terrain/10/284/373.png
## Source : http://tile.stamen.com/terrain/10/285/373.png
## Source : http://tile.stamen.com/terrain/10/286/373.png
## Source : http://tile.stamen.com/terrain/10/287/373.png
## Source : http://tile.stamen.com/terrain/10/288/373.png
## Source : http://tile.stamen.com/terrain/10/289/373.png
## Source : http://tile.stamen.com/terrain/10/290/373.png
## Source : http://tile.stamen.com/terrain/10/291/373.png
## Source : http://tile.stamen.com/terrain/10/292/373.png
## Source : http://tile.stamen.com/terrain/10/293/373.png
## Source : http://tile.stamen.com/terrain/10/294/373.png
## Source : http://tile.stamen.com/terrain/10/295/373.png
## Source : http://tile.stamen.com/terrain/10/296/373.png
## Source : http://tile.stamen.com/terrain/10/297/373.png
## Source : http://tile.stamen.com/terrain/10/298/373.png
## Source : http://tile.stamen.com/terrain/10/299/373.png
## Source : http://tile.stamen.com/terrain/10/300/373.png
## Source : http://tile.stamen.com/terrain/10/301/373.png
## Source : http://tile.stamen.com/terrain/10/302/373.png
## Source : http://tile.stamen.com/terrain/10/303/373.png
## Source : http://tile.stamen.com/terrain/10/304/373.png
## Source : http://tile.stamen.com/terrain/10/305/373.png
## Source : http://tile.stamen.com/terrain/10/306/373.png
## Source : http://tile.stamen.com/terrain/10/307/373.png
## Source : http://tile.stamen.com/terrain/10/284/374.png
## Source : http://tile.stamen.com/terrain/10/285/374.png
## Source : http://tile.stamen.com/terrain/10/286/374.png
## Source : http://tile.stamen.com/terrain/10/287/374.png
## Source : http://tile.stamen.com/terrain/10/288/374.png
## Source : http://tile.stamen.com/terrain/10/289/374.png
## Source : http://tile.stamen.com/terrain/10/290/374.png
## Source : http://tile.stamen.com/terrain/10/291/374.png
## Source : http://tile.stamen.com/terrain/10/292/374.png
## Source : http://tile.stamen.com/terrain/10/293/374.png
## Source : http://tile.stamen.com/terrain/10/294/374.png
## Source : http://tile.stamen.com/terrain/10/295/374.png
## Source : http://tile.stamen.com/terrain/10/296/374.png
## Source : http://tile.stamen.com/terrain/10/297/374.png
## Source : http://tile.stamen.com/terrain/10/298/374.png
## Source : http://tile.stamen.com/terrain/10/299/374.png
## Source : http://tile.stamen.com/terrain/10/300/374.png
## Source : http://tile.stamen.com/terrain/10/301/374.png
## Source : http://tile.stamen.com/terrain/10/302/374.png
## Source : http://tile.stamen.com/terrain/10/303/374.png
## Source : http://tile.stamen.com/terrain/10/304/374.png
## Source : http://tile.stamen.com/terrain/10/305/374.png
## Source : http://tile.stamen.com/terrain/10/306/374.png
## Source : http://tile.stamen.com/terrain/10/307/374.png
## Source : http://tile.stamen.com/terrain/10/284/375.png
## Source : http://tile.stamen.com/terrain/10/285/375.png
## Source : http://tile.stamen.com/terrain/10/286/375.png
## Source : http://tile.stamen.com/terrain/10/287/375.png
## Source : http://tile.stamen.com/terrain/10/288/375.png
## Source : http://tile.stamen.com/terrain/10/289/375.png
## Source : http://tile.stamen.com/terrain/10/290/375.png
## Source : http://tile.stamen.com/terrain/10/291/375.png
## Source : http://tile.stamen.com/terrain/10/292/375.png
## Source : http://tile.stamen.com/terrain/10/293/375.png
## Source : http://tile.stamen.com/terrain/10/294/375.png
## Source : http://tile.stamen.com/terrain/10/295/375.png
## Source : http://tile.stamen.com/terrain/10/296/375.png
## Source : http://tile.stamen.com/terrain/10/297/375.png
## Source : http://tile.stamen.com/terrain/10/298/375.png
## Source : http://tile.stamen.com/terrain/10/299/375.png
## Source : http://tile.stamen.com/terrain/10/300/375.png
## Source : http://tile.stamen.com/terrain/10/301/375.png
## Source : http://tile.stamen.com/terrain/10/302/375.png
## Source : http://tile.stamen.com/terrain/10/303/375.png
## Source : http://tile.stamen.com/terrain/10/304/375.png
## Source : http://tile.stamen.com/terrain/10/305/375.png
## Source : http://tile.stamen.com/terrain/10/306/375.png
## Source : http://tile.stamen.com/terrain/10/307/375.png
## Source : http://tile.stamen.com/terrain/10/284/376.png
## Source : http://tile.stamen.com/terrain/10/285/376.png
## Source : http://tile.stamen.com/terrain/10/286/376.png
## Source : http://tile.stamen.com/terrain/10/287/376.png
## Source : http://tile.stamen.com/terrain/10/288/376.png
## Source : http://tile.stamen.com/terrain/10/289/376.png
## Source : http://tile.stamen.com/terrain/10/290/376.png
## Source : http://tile.stamen.com/terrain/10/291/376.png
## Source : http://tile.stamen.com/terrain/10/292/376.png
## Source : http://tile.stamen.com/terrain/10/293/376.png
## Source : http://tile.stamen.com/terrain/10/294/376.png
## Source : http://tile.stamen.com/terrain/10/295/376.png
## Source : http://tile.stamen.com/terrain/10/296/376.png
## Source : http://tile.stamen.com/terrain/10/297/376.png
## Source : http://tile.stamen.com/terrain/10/298/376.png
## Source : http://tile.stamen.com/terrain/10/299/376.png
## Source : http://tile.stamen.com/terrain/10/300/376.png
## Source : http://tile.stamen.com/terrain/10/301/376.png
## Source : http://tile.stamen.com/terrain/10/302/376.png
## Source : http://tile.stamen.com/terrain/10/303/376.png
## Source : http://tile.stamen.com/terrain/10/304/376.png
## Source : http://tile.stamen.com/terrain/10/305/376.png
## Source : http://tile.stamen.com/terrain/10/306/376.png
## Source : http://tile.stamen.com/terrain/10/307/376.png
## Source : http://tile.stamen.com/terrain/10/284/377.png
## Source : http://tile.stamen.com/terrain/10/285/377.png
## Source : http://tile.stamen.com/terrain/10/286/377.png
## Source : http://tile.stamen.com/terrain/10/287/377.png
## Source : http://tile.stamen.com/terrain/10/288/377.png
## Source : http://tile.stamen.com/terrain/10/289/377.png
## Source : http://tile.stamen.com/terrain/10/290/377.png
## Source : http://tile.stamen.com/terrain/10/291/377.png
## Source : http://tile.stamen.com/terrain/10/292/377.png
## Source : http://tile.stamen.com/terrain/10/293/377.png
## Source : http://tile.stamen.com/terrain/10/294/377.png
## Source : http://tile.stamen.com/terrain/10/295/377.png
## Source : http://tile.stamen.com/terrain/10/296/377.png
## Source : http://tile.stamen.com/terrain/10/297/377.png
## Source : http://tile.stamen.com/terrain/10/298/377.png
## Source : http://tile.stamen.com/terrain/10/299/377.png
## Source : http://tile.stamen.com/terrain/10/300/377.png
## Source : http://tile.stamen.com/terrain/10/301/377.png
## Source : http://tile.stamen.com/terrain/10/302/377.png
## Source : http://tile.stamen.com/terrain/10/303/377.png
## Source : http://tile.stamen.com/terrain/10/304/377.png
## Source : http://tile.stamen.com/terrain/10/305/377.png
## Source : http://tile.stamen.com/terrain/10/306/377.png
## Source : http://tile.stamen.com/terrain/10/307/377.png
## Source : http://tile.stamen.com/terrain/10/284/378.png
## Source : http://tile.stamen.com/terrain/10/285/378.png
## Source : http://tile.stamen.com/terrain/10/286/378.png
## Source : http://tile.stamen.com/terrain/10/287/378.png
## Source : http://tile.stamen.com/terrain/10/288/378.png
## Source : http://tile.stamen.com/terrain/10/289/378.png
## Source : http://tile.stamen.com/terrain/10/290/378.png
## Source : http://tile.stamen.com/terrain/10/291/378.png
## Source : http://tile.stamen.com/terrain/10/292/378.png
## Source : http://tile.stamen.com/terrain/10/293/378.png
## Source : http://tile.stamen.com/terrain/10/294/378.png
## Source : http://tile.stamen.com/terrain/10/295/378.png
## Source : http://tile.stamen.com/terrain/10/296/378.png
## Source : http://tile.stamen.com/terrain/10/297/378.png
## Source : http://tile.stamen.com/terrain/10/298/378.png
## Source : http://tile.stamen.com/terrain/10/299/378.png
## Source : http://tile.stamen.com/terrain/10/300/378.png
## Source : http://tile.stamen.com/terrain/10/301/378.png
## Source : http://tile.stamen.com/terrain/10/302/378.png
## Source : http://tile.stamen.com/terrain/10/303/378.png
## Source : http://tile.stamen.com/terrain/10/304/378.png
## Source : http://tile.stamen.com/terrain/10/305/378.png
## Source : http://tile.stamen.com/terrain/10/306/378.png
## Source : http://tile.stamen.com/terrain/10/307/378.png
## Source : http://tile.stamen.com/terrain/10/284/379.png
## Source : http://tile.stamen.com/terrain/10/285/379.png
## Source : http://tile.stamen.com/terrain/10/286/379.png
## Source : http://tile.stamen.com/terrain/10/287/379.png
## Source : http://tile.stamen.com/terrain/10/288/379.png
## Source : http://tile.stamen.com/terrain/10/289/379.png
## Source : http://tile.stamen.com/terrain/10/290/379.png
## Source : http://tile.stamen.com/terrain/10/291/379.png
## Source : http://tile.stamen.com/terrain/10/292/379.png
## Source : http://tile.stamen.com/terrain/10/293/379.png
## Source : http://tile.stamen.com/terrain/10/294/379.png
## Source : http://tile.stamen.com/terrain/10/295/379.png
## Source : http://tile.stamen.com/terrain/10/296/379.png
## Source : http://tile.stamen.com/terrain/10/297/379.png
## Source : http://tile.stamen.com/terrain/10/298/379.png
## Source : http://tile.stamen.com/terrain/10/299/379.png
## Source : http://tile.stamen.com/terrain/10/300/379.png
## Source : http://tile.stamen.com/terrain/10/301/379.png
## Source : http://tile.stamen.com/terrain/10/302/379.png
## Source : http://tile.stamen.com/terrain/10/303/379.png
## Source : http://tile.stamen.com/terrain/10/304/379.png
## Source : http://tile.stamen.com/terrain/10/305/379.png
## Source : http://tile.stamen.com/terrain/10/306/379.png
## Source : http://tile.stamen.com/terrain/10/307/379.png
## Source : http://tile.stamen.com/terrain/10/284/380.png
## Source : http://tile.stamen.com/terrain/10/285/380.png
## Source : http://tile.stamen.com/terrain/10/286/380.png
## Source : http://tile.stamen.com/terrain/10/287/380.png
## Source : http://tile.stamen.com/terrain/10/288/380.png
## Source : http://tile.stamen.com/terrain/10/289/380.png
## Source : http://tile.stamen.com/terrain/10/290/380.png
## Source : http://tile.stamen.com/terrain/10/291/380.png
## Source : http://tile.stamen.com/terrain/10/292/380.png
## Source : http://tile.stamen.com/terrain/10/293/380.png
## Source : http://tile.stamen.com/terrain/10/294/380.png
## Source : http://tile.stamen.com/terrain/10/295/380.png
## Source : http://tile.stamen.com/terrain/10/296/380.png
## Source : http://tile.stamen.com/terrain/10/297/380.png
## Source : http://tile.stamen.com/terrain/10/298/380.png
## Source : http://tile.stamen.com/terrain/10/299/380.png
## Source : http://tile.stamen.com/terrain/10/300/380.png
## Source : http://tile.stamen.com/terrain/10/301/380.png
## Source : http://tile.stamen.com/terrain/10/302/380.png
## Source : http://tile.stamen.com/terrain/10/303/380.png
## Source : http://tile.stamen.com/terrain/10/304/380.png
## Source : http://tile.stamen.com/terrain/10/305/380.png
## Source : http://tile.stamen.com/terrain/10/306/380.png
## Source : http://tile.stamen.com/terrain/10/307/380.png
## Source : http://tile.stamen.com/terrain/10/284/381.png
## Source : http://tile.stamen.com/terrain/10/285/381.png
## Source : http://tile.stamen.com/terrain/10/286/381.png
## Source : http://tile.stamen.com/terrain/10/287/381.png
## Source : http://tile.stamen.com/terrain/10/288/381.png
## Source : http://tile.stamen.com/terrain/10/289/381.png
## Source : http://tile.stamen.com/terrain/10/290/381.png
## Source : http://tile.stamen.com/terrain/10/291/381.png
## Source : http://tile.stamen.com/terrain/10/292/381.png
## Source : http://tile.stamen.com/terrain/10/293/381.png
## Source : http://tile.stamen.com/terrain/10/294/381.png
## Source : http://tile.stamen.com/terrain/10/295/381.png
## Source : http://tile.stamen.com/terrain/10/296/381.png
## Source : http://tile.stamen.com/terrain/10/297/381.png
## Source : http://tile.stamen.com/terrain/10/298/381.png
## Source : http://tile.stamen.com/terrain/10/299/381.png
## Source : http://tile.stamen.com/terrain/10/300/381.png
## Source : http://tile.stamen.com/terrain/10/301/381.png
## Source : http://tile.stamen.com/terrain/10/302/381.png
## Source : http://tile.stamen.com/terrain/10/303/381.png
## Source : http://tile.stamen.com/terrain/10/304/381.png
## Source : http://tile.stamen.com/terrain/10/305/381.png
## Source : http://tile.stamen.com/terrain/10/306/381.png
## Source : http://tile.stamen.com/terrain/10/307/381.png
## Source : http://tile.stamen.com/terrain/10/284/382.png
## Source : http://tile.stamen.com/terrain/10/285/382.png
## Source : http://tile.stamen.com/terrain/10/286/382.png
## Source : http://tile.stamen.com/terrain/10/287/382.png
## Source : http://tile.stamen.com/terrain/10/288/382.png
## Source : http://tile.stamen.com/terrain/10/289/382.png
## Source : http://tile.stamen.com/terrain/10/290/382.png
## Source : http://tile.stamen.com/terrain/10/291/382.png
## Source : http://tile.stamen.com/terrain/10/292/382.png
## Source : http://tile.stamen.com/terrain/10/293/382.png
## Source : http://tile.stamen.com/terrain/10/294/382.png
## Source : http://tile.stamen.com/terrain/10/295/382.png
## Source : http://tile.stamen.com/terrain/10/296/382.png
## Source : http://tile.stamen.com/terrain/10/297/382.png
## Source : http://tile.stamen.com/terrain/10/298/382.png
## Source : http://tile.stamen.com/terrain/10/299/382.png
## Source : http://tile.stamen.com/terrain/10/300/382.png
## Source : http://tile.stamen.com/terrain/10/301/382.png
## Source : http://tile.stamen.com/terrain/10/302/382.png
## Source : http://tile.stamen.com/terrain/10/303/382.png
## Source : http://tile.stamen.com/terrain/10/304/382.png
## Source : http://tile.stamen.com/terrain/10/305/382.png
## Source : http://tile.stamen.com/terrain/10/306/382.png
## Source : http://tile.stamen.com/terrain/10/307/382.png
## Source : http://tile.stamen.com/terrain/10/284/383.png
## Source : http://tile.stamen.com/terrain/10/285/383.png
## Source : http://tile.stamen.com/terrain/10/286/383.png
## Source : http://tile.stamen.com/terrain/10/287/383.png
## Source : http://tile.stamen.com/terrain/10/288/383.png
## Source : http://tile.stamen.com/terrain/10/289/383.png
## Source : http://tile.stamen.com/terrain/10/290/383.png
## Source : http://tile.stamen.com/terrain/10/291/383.png
## Source : http://tile.stamen.com/terrain/10/292/383.png
## Source : http://tile.stamen.com/terrain/10/293/383.png
## Source : http://tile.stamen.com/terrain/10/294/383.png
## Source : http://tile.stamen.com/terrain/10/295/383.png
## Source : http://tile.stamen.com/terrain/10/296/383.png
## Source : http://tile.stamen.com/terrain/10/297/383.png
## Source : http://tile.stamen.com/terrain/10/298/383.png
## Source : http://tile.stamen.com/terrain/10/299/383.png
## Source : http://tile.stamen.com/terrain/10/300/383.png
## Source : http://tile.stamen.com/terrain/10/301/383.png
## Source : http://tile.stamen.com/terrain/10/302/383.png
## Source : http://tile.stamen.com/terrain/10/303/383.png
## Source : http://tile.stamen.com/terrain/10/304/383.png
## Source : http://tile.stamen.com/terrain/10/305/383.png
## Source : http://tile.stamen.com/terrain/10/306/383.png
## Source : http://tile.stamen.com/terrain/10/307/383.png
## Source : http://tile.stamen.com/terrain/10/284/384.png
## Source : http://tile.stamen.com/terrain/10/285/384.png
## Source : http://tile.stamen.com/terrain/10/286/384.png
## Source : http://tile.stamen.com/terrain/10/287/384.png
## Source : http://tile.stamen.com/terrain/10/288/384.png
## Source : http://tile.stamen.com/terrain/10/289/384.png
## Source : http://tile.stamen.com/terrain/10/290/384.png
## Source : http://tile.stamen.com/terrain/10/291/384.png
## Source : http://tile.stamen.com/terrain/10/292/384.png
## Source : http://tile.stamen.com/terrain/10/293/384.png
## Source : http://tile.stamen.com/terrain/10/294/384.png
## Source : http://tile.stamen.com/terrain/10/295/384.png
## Source : http://tile.stamen.com/terrain/10/296/384.png
## Source : http://tile.stamen.com/terrain/10/297/384.png
## Source : http://tile.stamen.com/terrain/10/298/384.png
## Source : http://tile.stamen.com/terrain/10/299/384.png
## Source : http://tile.stamen.com/terrain/10/300/384.png
## Source : http://tile.stamen.com/terrain/10/301/384.png
## Source : http://tile.stamen.com/terrain/10/302/384.png
## Source : http://tile.stamen.com/terrain/10/303/384.png
## Source : http://tile.stamen.com/terrain/10/304/384.png
## Source : http://tile.stamen.com/terrain/10/305/384.png
## Source : http://tile.stamen.com/terrain/10/306/384.png
## Source : http://tile.stamen.com/terrain/10/307/384.png
ny.map1<- ny.map +
geom_point(data=sites,size=4,
aes(x=LOCATION_X_COORDINATE,
y=LOCATION_Y_COORDINATE,
color=Color)) +
scale_color_distiller(palette = "RdBu", limits = c(-0.4,0.4))
print(ny.map1)#temperature
ny.map2 <- ny.map +
geom_point(data=sites,size=4,
aes(x=LOCATION_X_COORDINATE,
y=LOCATION_Y_COORDINATE,
color=Temp)) +
scale_color_distiller(palette = "RdBu", limits = c(-0.2,0.2))
print(ny.map2)#CHL/TP
ny.map3 <- ny.map +
geom_point(data=sites, size=4,
aes(x=LOCATION_X_COORDINATE,
y=LOCATION_Y_COORDINATE,
color=CHLTP)) +
scale_color_distiller(palette = "RdBu", limits = c(-0.000125,0.000125))
print(ny.map3)